Лабораторная работа №5

Построение графиков

Чемоданова Ангелина Александровна

Российский университет дружбы народов имени Патриса Лумумбы, Москва, Россия

16 сентября 2025

Докладчик

  • Чемоданова Ангелина Александровна
  • Cтудентка НФИбд-02-22
  • Российский университет дружбы народов имени Патриса Лумумбы
  • 1132226443@pfur.ru
  • https://github.com/aachemodanova

Цели и задачи

Цель работы

Основная цель работы — освоить синтаксис языка Julia для построения графиков.

Задание

  1. Используя Jupyter Lab, повторите примеры. При этом дополните графики обозначениями осей координат, легендой с названиями траекторий, названиями графиков и т.п.

  2. Выполните задания для самостоятельной работы.

Основные пакеты для работы с графиками в Julia

Рассмотрим построение графика функции f(x) = (3x2 + 6x − 9)e−0,3x разными способами:

Задание функции

Основные пакеты для работы с графиками в Julia

Задание функции

Основные пакеты для работы с графиками в Julia

График функции, построенный при помощи gr()

Основные пакеты для работы с графиками в Julia

График функции, построенный при помощи pyplot()

Основные пакеты для работы с графиками в Julia

График функции, построенный при помощи unicodeplots()

Опции при построении графика

На примере графика функции sin(x) и графика разложения этой функции в ряд Тейлора рассмотрим дополнительные возможности пакетов для работы с графикой:

Опции при построении графика

График функции sin(x)

Опции при построении графика

График функции разложения исходной функции в ряд Тейлора

Опции при построении графика

Графики исходной функции и её разложения в ряд Тейлора

Опции при построении графика

Затем добавим различные опции для отображения на графике:

Добавления опций для графика

Опции при построении графика

Вид графиков после добавления опций при их построении

Точечный график

Как и при построении обычного графика для точечного графика необходимо задать массив значений х, посчитать или задать значения у, задать опции построения графика:

График десяти случайных значений на плоскости (простой точечный график)

Точечный график

Для точечного графика можно задать различные опции, например размер маркера, его тип, цвет и и т.п.:

График пятидесяти случайных значений на плоскости с различными опциями отображения (точечный график с кодированием значения размером точки)

Точечный график

График пятидесяти случайных значений в пространстве с различными опциями отображения (3-мерный точечный график с кодированием значения размером точки)

Аппроксимация данных

Аппроксимация — научный метод, состоящий в замене объектов их более простыми аналогами, сходными по своим свойствам.

Для демонстрации зададим искусственно некоторую функцию, в данном случае похожую по поведению на экспоненту:

Аппроксимация данных

Пример функции

Аппроксимация данных

Аппроксимируем полученную функцию полиномом 5-й степени:

Пример аппроксимации исходной функции полиномом 5-й степени

Пример траектории

Пример отдельно построенной траектории

Полярные координаты

Приведём пример построения графика функции в полярных координатах:

График функции, заданной в полярных координатах

Параметрический график

Приведём пример построения графика параметрически заданной кривой на плоскости:

Параметрический график кривой на плоскости

Параметрический график

Параметрический график кривой в пространстве

График поверхности

Для построения поверхности, заданной уравнением f(x, y) = x2 + y2, можно воспользоваться функцией surface():

График поверхности (использована функция surface())

График поверхности

График поверхности (использована функция plot())

График поверхности

Сглаженный график поверхности

График поверхности

График поверхности с изменённым углом зрения

Линии уровня

Линией уровня некоторой функции от двух переменных называется множество точек на координатной плоскости, в которых функция принимает одинаковые значения. Линий уровня бесконечно много, и через каждую точку области определения можно провести линию уровня.

С помощью линий уровня можно определить наибольшее и наименьшее значение исходной функции от двух переменных. Каждая из этих линий соответствует определённому значению высоты.

Поверхности уровня представляют собой непересекающиеся пространственные поверхности.

Линии уровня

Рассмотрим поверхность, заданную функцией g(x, y) = (3x + y2)| sin(x) + cos(y)|:

График поверхности, заданной функцией g(x, y) = (3x + y2)| sin(x) + cos(y)|

Линии уровня

Линии уровня можно построить, используя проекцию значений исходной функции на плоскость:

Линии уровня

Линии уровня

Можно дополнительно добавить заливку цветом:

Линии уровня с заполнением

Векторные поля

Если каждой точке некоторой области пространства поставлен в соответствие вектор с началом в данной точке, то говорят, что в этой области задано векторное поле.

Векторные поля задают векторными функциями.

Векторные поля

График функции h(x, y) = x3 − 3x + y2

Векторные поля

Линии уровня для функции h(x, y) = x3 − 3x + y2

Анимация

Технически анимированное изображение представляет собой несколько наложенных изображений (или построенных в разных точках графиках) в одном файле.

В Julia рекомендуется использовать gif-анимацию в pyplot().

Анимация

Статичный график поверхности

Анимация

Анимированный график поверхности

Гипоциклоида

Гипоциклоида — плоская кривая, образуемая точкой окружности, катящейся по внутренней стороне другой окружности без скольжения.

Построение большой окружности гипоциклоиды

Гипоциклоида

Большая окружность гипоциклоиды

Гипоциклоида

Для частичного построения гипоциклоиды будем менять параметр t:

Половина пути гипоциклоиды

Гипоциклоида

Добавляем малую окружность гипоциклоиды:

Малая окружность гипоциклоиды

Гипоциклоида

Добавим радиус для малой окружности:

Малая окружность гипоциклоиды с добавлением радиуса

Errorbars

В исследованиях часто требуется изобразить графики погрешностей измерения.

Зададим исходные значения

Errorbars

График исходных значений

Errorbars

График исходных значений с отклонениями

Errorbars

Поворот графика

Errorbars

Заполнение цветом

Errorbars

График ошибок по двум осям

Errorbars

График асимметричных ошибок по двум осям

Использование пакета Distributions

Гистограмма, построенная по массиву случайных чисел

Использование пакета Distributions

Гистограмма нормального распределения

Подграфики

Определим макет расположения графиков. Команда layout принимает кортеж layout = (N, M), который строит сетку графиков NxM. Например, если задать layout = (4,1) на графике четыре серии, то получим четыре ряда графиков:

Серия из 4-х графиков в ряд

Подграфики

Для автоматического вычисления сетки необходимо передать layout целое число:

Серия из 4-х графиков в сетке

Подграфики

Аргумент heights принимает в качестве входных данных массив с долями желаемых высот. Если в сумме дроби не составляют 1,0, то некоторые подзаголовки могут отображаться неправильно.

Серия из 4-х графиков разной высоты в ряд

Подграфики

Можно сгенерировать отдельные графики и объединить их в один, например, в сетке 2 × 2:

Объединение нескольких графиков в одной сетке

Подграфики

Объединение нескольких графиков в одной сетке

Подграфики

Разнообразные варианты представления данных

Подграфики

Демонстрация применения сложного макета для построения графиков

Самостоятельное выполнение

Решение задания №1

Самостоятельное выполнение

Решение задания №2

Самостоятельное выполнение

Решение задания №3

Самостоятельное выполнение

Решение задания №4

Самостоятельное выполнение

Решение задания №5

Самостоятельное выполнение

Решение задания №5

Самостоятельное выполнение

Решение задания №6

Самостоятельное выполнение

Решение задания №7

Самостоятельное выполнение

Решение задания №8

Самостоятельное выполнение

Решение задания №9

Самостоятельное выполнение

Решение задания №10

Самостоятельное выполнение

Решение задания №10

Самостоятельное выполнение

Решение задания №10

Самостоятельное выполнение

Решение задания №10

Самостоятельное выполнение

Решение задания №10

Самостоятельное выполнение

Решение задания №10

Самостоятельное выполнение

Решение задания №11

Самостоятельное выполнение

Решение задания №11

Самостоятельное выполнение

Решение задания №11

Самостоятельное выполнение

Решение задания №11

Самостоятельное выполнение

Решение задания №11

Самостоятельное выполнение

Решение задания №11

Выводы

В результате выполнения данной лабораторной работы мы освоили синтаксис языка Julia для построения графиков.